home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / OS / FWGraphx / Sources / FWFctInf.cpp < prev    next >
Encoding:
Text File  |  1996-04-25  |  4.1 KB  |  125 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWFctInf.cpp
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifndef FWFCTINF_H
  13. #include "FWFctInf.h"
  14. #endif
  15.  
  16. #ifndef FWPRIDEB_H
  17. #include "FWPriDeb.h"
  18. #endif
  19.  
  20. // ----- OpenDoc Includes -----
  21.  
  22. #ifndef SOM_ODFacet_xh
  23. #include <Facet.xh>
  24. #endif
  25.  
  26. //========================================================================================
  27. //    Runtime Informations
  28. //========================================================================================
  29.  
  30. #ifdef FW_BUILD_MAC    
  31. #pragma segment fwgraphx
  32. #endif
  33.  
  34. //========================================================================================
  35. //    Global Methods
  36. //========================================================================================
  37.  
  38. //----------------------------------------------------------------------------------------
  39. //    FW_PrivCreateFacetPartInfo
  40. //----------------------------------------------------------------------------------------
  41.  
  42. FW_SPrivFacetPartInfo* FW_PrivCreateFacetPartInfo(Environment* ev, ODFacet* facet)
  43. {
  44.     FW_SPrivFacetPartInfo* facetPartInfo = new FW_SPrivFacetPartInfo;
  45.     facetPartInfo->fMagicNumber1     = (unsigned long)facet;
  46.     facetPartInfo->fMagicNumber2     = (unsigned long)facet->GetFrame(ev);
  47.     facetPartInfo->fDevice             = FW_PrivGDev_CreateFromODCanvas(ev, facet->GetCanvas(ev));
  48.     facetPartInfo->fRefCon             = 0;
  49.     
  50.     facet->SetPartInfo(ev, (ODInfoType)facetPartInfo);
  51.     
  52.     return facetPartInfo;
  53. }
  54.  
  55. //----------------------------------------------------------------------------------------
  56. //    FW_PrivDeleteFacetPartInfo
  57. //----------------------------------------------------------------------------------------
  58.  
  59. void FW_PrivDeleteFacetPartInfo(Environment* ev, ODFacet* facet)
  60. {
  61.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  62.     
  63.     if (partInfo != NULL)
  64.     {
  65.         FW_PrivGDev_Release(partInfo->fDevice);
  66.         delete partInfo;
  67.         
  68.         facet->SetPartInfo(ev, (ODInfoType)NULL);
  69.     }
  70. }
  71.  
  72. //----------------------------------------------------------------------------------------
  73. //    FW_PrivGetFacetPartInfo
  74. //----------------------------------------------------------------------------------------
  75.  
  76. FW_SPrivFacetPartInfo* FW_PrivGetFacetPartInfo(Environment* ev, ODFacet* facet)
  77. {
  78.     FW_SPrivFacetPartInfo* partInfo = (FW_SPrivFacetPartInfo*)facet->GetPartInfo(ev);
  79.     
  80.     // ----- If partInfo is NULL or doesn't have the right magic number, facet ------
  81.     // ----- was not one of our facet (This can appended in FW_CWindowContext) -----
  82.     if (partInfo == NULL || 
  83.         partInfo->fMagicNumber1 != (unsigned long)facet ||
  84.         partInfo->fMagicNumber2 != (unsigned long)facet->GetFrame(ev))
  85.         return NULL;
  86.     
  87.     return partInfo;
  88. }
  89.  
  90. //----------------------------------------------------------------------------------------
  91. //    FW_GetFacetGraphicDevice
  92. //----------------------------------------------------------------------------------------
  93.  
  94. FW_HGDevice FW_GetFacetGraphicDevice(Environment* ev, ODFacet* facet)
  95. {
  96.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  97.     return partInfo ? partInfo->fDevice : NULL;
  98. }
  99.  
  100. //----------------------------------------------------------------------------------------
  101. //    FW_GetFacetRefCon
  102. //----------------------------------------------------------------------------------------
  103.  
  104. unsigned long FW_GetFacetRefCon(Environment* ev, ODFacet* facet)
  105. {
  106.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  107.     return partInfo ? partInfo->fRefCon : 0;
  108. }
  109.  
  110. //----------------------------------------------------------------------------------------
  111. //    FW_SetFacetRefCon
  112. //----------------------------------------------------------------------------------------
  113.  
  114. void FW_SetFacetRefCon(Environment* ev, ODFacet* facet, unsigned long refCon)
  115. {
  116.     FW_SPrivFacetPartInfo* partInfo = FW_PrivGetFacetPartInfo(ev, facet);
  117.     if (partInfo)
  118.         partInfo->fRefCon = refCon;
  119. #ifdef FW_DEBUG
  120.     else
  121.         FW_DEBUG_MESSAGE("Trying to set the Facet Part Info of a non-display facet");
  122. #endif
  123. }
  124.  
  125.